package com.openlogic.common.core.mapstruct;

import java.util.List;

/**
* @ClassName: EntityMapper
* @Description: Mapper映射文件基类 可扩展
* @author weiyongpeng
* @date 2024年11月9日 上午9:48:17
* @param <D> 目标对象，一般为DTO对象
* @param <E> 源对象，一般为需要转换的对象
* @param <V> 目标对象，一般为VO对象
 */
public interface EntityMapper<D, E, V> {

    /**
    * 描述：将源对象转换为DTO对象
    * @Title: toDTO
    * @param e
    * @return
    * @author weiyongpeng
    * @date  2024年11月9日 上午9:49:10
     */
    D toDTO(E e);

    /**
    * 描述：将源对象集合转换为DTO对象集合
    * @Title: toDTO
    * @param es
    * @return
    * @author weiyongpeng
    * @date  2024年11月9日 上午9:49:19
     */
    List<D> toDTO(List<E> es);

    /**
    * 描述：将源对象转换为VO对象
    * @Title: toVO
    * @param e
    * @return
    * @author weiyongpeng
    * @date  2024年11月9日 上午9:49:28
     */
    V toVO(E e);

    /**
    * 描述：将源对象集合转换为VO对象集合
    * @Title: toVO
    * @param es
    * @return
    * @author weiyongpeng
    * @date  2024年11月9日 上午9:49:38
     */
    List<V> toVO(List<E> es);

    /**
    * 描述：将目标对象转换为源对象
    * @Title: toEntity
    * @param d
    * @return
    * @author weiyongpeng
    * @date  2024年11月9日 上午9:49:51
     */
    E toEntity(D d);

    /**
    * 描述：将目标对象集合转换为源对象集合
    * @Title: toEntity
    * @param ds
    * @return
    * @author weiyongpeng
    * @date  2024年11月9日 上午9:50:00
     */
    List<E> toEntity(List<D> ds);
}


